package cn.didi.feidi.androidorder.manager;


import org.afinal.simplecache.SimplceCache;

import cn.didi.feidi.androidorder.OrderApplication;

/**
 * Created by king on 2017/7/5.
 */

public class UserManager {
    public final static String defaultValue = "-1";
    /**
     * 保存时间
     */
    public static final int SAVE_TIME = SimplceCache.TIME_DAY * 5;

    private static SimplceCache userCache = SimplceCache.get(
            OrderApplication.getContext(), "deliver_user_167");

    private static String returnDefaultValue(String value, String defaultValue) {
        if (value != null && !"".equals(value))
            return value;
        return defaultValue;
    }

    /**
     * 是否绑定账号
     *
     * @return
     */
    public static boolean isBingAccount() {
        String isNullUserId = getUserId();
        String isNullToken = getToken();
        return !defaultValue.equals(isNullUserId) && !defaultValue.equals(isNullToken);
    }

    /**
     * 是否听单模式（非1 听单 1 不听单）
     *
     * @return
     */
    public static boolean isListenMode() {
        return !getListeningMode().equals("1");
    }


    /**
     * 是否开工
     *
     * @return
     */
    public static boolean isWorking() {
        return getWorkStatus().equals("0");
    }

    /**
     * @return the id
     */
    public static String getUserId() {
        return returnDefaultValue(userCache.getAsString("userid"), defaultValue);
    }

    /**
     * 只保存一定时间
     *
     * @param userId the id to set
     */
    public static void setUserId(String userId) {
        userCache.put("userid", userId, SAVE_TIME);
    }

    /**
     * @return tekon
     */
    public static String getToken() {
        return returnDefaultValue(userCache.getAsString("token_167"), defaultValue);
    }

    /**
     * 只保存一定时间(s)
     *
     * @param token the tekon to set
     */
    public static void setToken(String token) {
        userCache.put("token_167", token, SAVE_TIME);
    }

    /**
     * @return tekon
     */
    public static String getPhone() {
        return returnDefaultValue(userCache.getAsString("phone_167"), defaultValue);
    }

    /**
     * 只保存一定时间(s)
     *
     * @param phone the tekon to set
     */
    public static void setPhone(String phone) {
        userCache.put("phone_167", phone, SAVE_TIME);
    }

    /**
     * 得到工作模式（0 全部 1 实时 2 预约）
     *
     * @return
     */
    public static String getWorkMode() {
        return returnDefaultValue(userCache.getAsString("work_mode"), defaultValue);
    }

    /**
     * 设置工作模式（0 全部 1 实时 2 预约）
     *
     * @param workMode
     */
    public static void setWorkMode(String workMode) {
        userCache.put("work_mode", workMode);
    }

    /**
     * 得到工作状态（0 开工 1 收工）
     *
     * @return
     */
    public static String getWorkStatus() {
        return returnDefaultValue(userCache.getAsString("work_status"), defaultValue);
    }

    /**
     * 设置工作状态（0 开工 1 收工）
     *
     * @param workStatus
     */
    public static void setWorkStatus(String workStatus) {
        userCache.put("work_status", workStatus);
    }

    /**
     * 得到可载货量
     *
     * @return
     */
    public static String getEnableCapacity() {
        return returnDefaultValue(userCache.getAsString("enable_capacity"), defaultValue);
    }

    /**
     * 设置可载货量
     *
     * @param enableCapacity
     */
    public static void setEnableCapacity(String enableCapacity) {
        userCache.put("enable_capacity", enableCapacity);
    }

    /**
     * 得到已经载货量
     *
     * @return
     */
    public static String getHadCapacity() {
        return returnDefaultValue(userCache.getAsString("had_capacity"), defaultValue);
    }

    /**
     * 设置已经载货量
     *
     * @param remainCapacity
     */
    public static void setHadCapacity(String remainCapacity) {
        userCache.put("had_capacity", remainCapacity);
    }

    /**
     * 得到开始工作时间
     *
     * @return
     */
    public static String getWorkStartTime() {
        return returnDefaultValue(userCache.getAsString("work_start_time"), "1999-1-1 00:00:00");
    }

    /**
     * 设置开始工作时间
     *
     * @param workStartTime
     */
    public static void setWorkStartTime(String workStartTime) {
        userCache.put("work_start_time", workStartTime);
    }

    /**
     * 得到结束工作时间
     *
     * @return
     */
    public static String getWorkEndTime() {
        return returnDefaultValue(userCache.getAsString("work_end_time"), "1999-1-1 00:00:00");
    }

    /**
     * 设置结束工作时间
     *
     * @param workEndTime
     */
    public static void setWorkEndTime(String workEndTime) {
        userCache.put("work_end_time", workEndTime);
    }


    /**
     * 得到听单模式
     *
     * @return
     */
    public static String getListeningMode() {
        return returnDefaultValue(userCache.getAsString("listening_mode"), defaultValue);
    }

    /**
     * 设置听单模式
     *
     * @param listeningMode
     */
    public static void setListeningMode(String listeningMode) {
        userCache.put("listening_mode", listeningMode);
    }

    /**
     * 清空登录信息（考虑个人信息也清空）
     */
    public static void clearBingAccountInfo() {
        setUserId("-1");
        setPhone("-1");
        setToken("-1");
    }
}
